/*
 * 1. Le serveur sait quel(s) client(s) a(ont) le verrou et dans quel mode (lecture ou ecriture).
 * 2. Le serveur informe ces clients qu'ils devront c��der leur droit (callback).
 * 3. Le serveur ne retire pas les droits a un client : c'est le client qui choisit quand il relache le verrou.
 * */
public interface Server_itf extends java.rmi.Remote {

	public int lookup(String name) throws java.rmi.RemoteException;

	public void register(String name, int id) throws java.rmi.RemoteException;

	public int create(Object o) throws java.rmi.RemoteException;

	public Object lock_read(int id, Client_itf client)
			throws java.rmi.RemoteException;

	public Object lock_write(int id, Client_itf client)
			throws java.rmi.RemoteException;

	// La méthode d'interface que j'ajoute. Je dois poser la question au prof.
	// Je ne sais pas si c'est légal.
	public SharedObject getSharedObjectById(int id)
			throws java.rmi.RemoteException;
}
